Allow multi-level outlines in tabulated-list-groups used by list-buffers
authorJuri Linkov <juri@linkov.net>
Wed, 5 Jun 2024 17:07:28 +0000 (20:07 +0300)
committerJuri Linkov <juri@linkov.net>
Wed, 5 Jun 2024 17:07:28 +0000 (20:07 +0300)
commitec8c0b0d0d8a6b8804fa3e6619242ec6db32fd19
tree80c00ec81573bb0d6817c60d137e0428c2aaf88c
parent6fbb699bee2f54d65fbe6074735d42bbc0868c2c
Allow multi-level outlines in tabulated-list-groups used by list-buffers

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups)
(tabulated-list-groups-categorize, tabulated-list-groups-sort)
(tabulated-list-groups-flatten): New functions (bug#70150).

* lisp/buff-menu.el (Buffer-menu-group-by): Change type from a function
to a list of functions.
(list-buffers--refresh): Use the function 'tabulated-list-groups' where
:path-function uses a list of functions from 'Buffer-menu-group-by', and
:sort-function is hard-coded to sort groups by name.
(Buffer-menu-group-by-mode, Buffer-menu-group-by-root): Remove prefix "*".
lisp/buff-menu.el
lisp/emacs-lisp/tabulated-list.el